package cn.dm.example.threadLocal;

public class RequestHolder {

    private final static ThreadLocal<Long> requestHolder = new ThreadLocal<>();

    /**
     * 定义三个方法,分别为向 ThreadLocal 中放数据、获取数据、移除数据
     * <p>
     * 放数据：当请求访问的时候,见cn.dm.HttpFilter#doFilter()方法
     * 移除数据：当请求完成的时候,见 cn.dm.HttpInterceptor#afterCompletion() 方法
     */
    public static void add(Long id) {
        requestHolder.set(id);
    }

    public static Long getId() {
        return requestHolder.get();
    }

    public static void remove() {
        requestHolder.remove();
    }
}
